# prompt_definitions.py
# -*- coding: utf-8 -*-
"""
集中存放所有提示词(Prompt)，新版本更精确、更具创新性，结合部分雪花写作法等理论。
"""

# ===============  1. 整体设定  ===================
set_prompt = """\
请根据主题: {topic}、类型: {genre}、章数: {number_of_chapters}、每章字数: {word_number} 来设计小说的总体结构和世界观。
写作时请参考雪花写作法等创作理论，结合以下要点：

• 小说标题与大致篇幅（总字数范围）。
• 类型与基调（如：都市、魔幻、战争、轻松、暗黑等）。
• 主要写作风格（视角、叙述方式、语言风格等）。
• 世界观设定（背景时间、地理环境、社会结构、科技或魔法水平、重要历史等）。
• 整体故事框架（可提及常见叙事结构：三幕、英雄之旅等）。
• 主线与副线的初步构想，以及它们如何交织。
• 关键角色群像定位与主要冲突关系。
• 结局的可能方向（圆满、悲剧、开放式等）。

请以简洁、逻辑清晰的方式输出，保留足够细节以支撑后续创作。
"""

# ===============  2. 角色设定  ===================
character_prompt = """\
基于已生成的小说整体设定：
{novel_setting}

请进一步扩展角色设置，至少包含三名核心角色。对每位角色说明：
• 角色背景、外貌与主要性格特征。
• 内在冲突、目标与动机。
• 暗藏的秘密或潜在弱点（可与世界观或其他角色有关）。
• 与其他角色的关系或对立点，如何推动或阻碍情节发展。

请重点突出角色的多重面向，为后续情节埋下伏笔。
"""

# ===============  3. 暗线与伏笔  ===================
dark_lines_prompt = """\
在当前世界观与角色关系中：
{character_info}

请构思若干暗线、伏笔或隐藏冲突，结合雪花写作法“细节逐步扩展”的思路。要求：
• 每条暗线给出初始迹象、后续发展与可能的爆发条件。
• 与角色背景、世界观或关键事件相呼应。
• 保持合理的悬念设置，与现有设定不冲突。
• 为后续剧情保留足够展开空间，强调持续影响故事进程。

请避免一次性透漏全部细节，以逐步揭示的方式为后文做铺垫。
"""

# ===============  4. 最终设定整合  ===================
finalize_setting_prompt = """\
基于以下内容，请整合并输出终稿《小说设定》：
1. 整体设定：
{novel_setting_base}
2. 角色设定：
{character_setting}
3. 暗线与伏笔：
{dark_lines}

整合要求：
• 以整体视角整理世界观、角色与暗线，形成一个有机结合的故事框架。
• 注意角色动机与暗线如何与世界观互相呼应，并兼顾主线与副线节奏。
• 语言通顺、层次分明。直接输出文本，不使用Markdown格式。
"""

# ===============  5. 小说目录  ===================
novel_directory_prompt = """\
根据以下最终《小说设定》：
{final_novel_setting}

请列出共 {number_of_chapters} 章的目录，并保证每章的标题或简述能呼应主要冲突、角色成长及暗线埋设。
目录格式示例：
第1章 ：<标题> - <简要说明>
第2章 ：<标题> - <简要说明>
...
第{number_of_chapters}章 ：<标题> - <简要说明>

每章可酌情加入一句简述，引导读者了解本章看点。直接输出文本，不使用Markdown。
"""

# ===============  6. 全局摘要更新  ===================
summary_prompt = """\
以下是新完成的章节文本：
{chapter_text}

这是当前的全局摘要（可为空）：
{global_summary}

请根据本章新增内容，更新全局摘要。保留既有重要信息，同时融入新剧情要点，勿剧透未来。控制在不超过3000字的范围内，语言简练流畅。
"""

# ===============  7. 角色状态更新  ===================
update_character_state_prompt = """\
以下是新完成的章节文本：
{chapter_text}

这是当前的角色状态文档（可为空）：
{old_state}

请更新角色状态，内容包括：
• 角色的物品、能力或心理状态变化。
• 角色间关系的最新进展或冲突。
• 是否触发或加深了某些暗线或关键事件。
• 任何新增角色或临时出场人物的基本信息。

请直接在已有文档基础上进行增删，语言尽量简洁、有条理。
"""

# ===============  8. 章节大纲设计  ===================
chapter_outline_prompt = """\
这是当前小说的重要信息：
- 小说设定：{novel_setting}
- 角色状态：{character_state}
- 全局摘要：{global_summary}

我们即将写第 {novel_number} 章，标题：{chapter_title}，简述（若有）：{chapter_brief}

请按照以下思路设计本章大纲：
1. 本章的主要冲突或情节目标，如何与标题呼应。
2. 出场角色及其动机，对剧情走向的推动或阻碍。
3. 暗线或伏笔如何有所进展或被揭示。
4. 本章结尾的悬念或转折，如何为下一章做铺垫。

请以简要分点方式输出，不要使用Markdown格式。
"""

# ===============  9. 章节正文写作  ===================
chapter_write_prompt = """\
以下信息供你参考：
1. 小说设定：{novel_setting}
2. 角色状态：{character_state}
3. 全局摘要：{global_summary}
4. 本章大纲：{chapter_outline}

请写出第 {novel_number} 章的正文，标题为“{chapter_title}”。需要：
• 字数不少于 {word_number} 字，与标题和简述相呼应。
• 保持连贯叙述，可增加环境、心理、对话等细节描写。
• 适度呼应前文暗线或角色矛盾，为后续发展留出悬念。

直接输出正文内容，不使用分章节小标题，章节末模仿正常小说中断或转场。
"""
